%ifndef __NASMX_NTDSAPI_INC__
%define __NASMX_NTDSAPI_INC__

IMPORT DsAddSidHistoryA, 32
IMPORT DsAddSidHistoryW, 32
IMPORT DsBindA, 12
IMPORT DsBindToISTGA, 8
IMPORT DsBindToISTGW, 8
IMPORT DsBindW, 12
IMPORT DsBindWithCredA, 16
IMPORT DsBindWithCredW, 16
IMPORT DsBindWithSpnA, 20
IMPORT DsBindWithSpnExA, 24
IMPORT DsBindWithSpnExW, 24
IMPORT DsBindWithSpnW, 20
IMPORT DsBindingSetTimeout, 8
IMPORT DsClientMakeSpnForTargetServerA, 16
IMPORT DsClientMakeSpnForTargetServerW, 16
IMPORT DsCrackNamesA, 28
IMPORT DsCrackNamesW, 28
IMPORT DsCrackSpn2A, 36
IMPORT DsCrackSpn2W, 36
IMPORT DsCrackSpn3W, 44
IMPORT DsCrackSpnA, 32
IMPORT DsCrackSpnW, 32
IMPORT DsCrackUnquotedMangledRdnA, 16
IMPORT DsCrackUnquotedMangledRdnW, 16
IMPORT DsFreeDomainControllerInfoA, 12
IMPORT DsFreeDomainControllerInfoW, 12
IMPORT DsFreeNameResultA, 4
IMPORT DsFreeNameResultW, 4
IMPORT DsFreePasswordCredentials, 4
IMPORT DsFreeSchemaGuidMapA, 4
IMPORT DsFreeSchemaGuidMapW, 4
IMPORT DsFreeSpnArrayA, 8
IMPORT DsFreeSpnArrayW, 8
IMPORT DsGetDomainControllerInfoA, 20
IMPORT DsGetDomainControllerInfoW, 20
IMPORT DsGetRdnW, 24
IMPORT DsGetSpnA, 36
IMPORT DsGetSpnW, 36
IMPORT DsInheritSecurityIdentityA, 16
IMPORT DsInheritSecurityIdentityW, 16
IMPORT DsIsMangledDnA, 8
IMPORT DsIsMangledDnW, 8
IMPORT DsIsMangledRdnValueA, 12
IMPORT DsIsMangledRdnValueW, 12
IMPORT DsListDomainsInSiteA, 12
IMPORT DsListDomainsInSiteW, 12
IMPORT DsListInfoForServerA, 12
IMPORT DsListInfoForServerW, 12
IMPORT DsListRolesA, 8
IMPORT DsListRolesW, 8
IMPORT DsListServersForDomainInSiteA, 16
IMPORT DsListServersForDomainInSiteW, 16
IMPORT DsListServersInSiteA, 12
IMPORT DsListServersInSiteW, 12
IMPORT DsListSitesA, 8
IMPORT DsListSitesW, 8
IMPORT DsLogEntry
IMPORT DsMakePasswordCredentialsA, 16
IMPORT DsMakePasswordCredentialsW, 16
IMPORT DsMakeSpnA, 28
IMPORT DsMakeSpnW, 28
IMPORT DsMapSchemaGuidsA, 16
IMPORT DsMapSchemaGuidsW, 16
IMPORT DsQuerySitesByCostA, 24
IMPORT DsQuerySitesByCostW, 24
IMPORT DsQuerySitesFree, 4
IMPORT DsQuoteRdnValueA, 16
IMPORT DsQuoteRdnValueW, 16
IMPORT DsRemoveDsDomainA, 8
IMPORT DsRemoveDsDomainW, 8
IMPORT DsRemoveDsServerA, 20
IMPORT DsRemoveDsServerW, 20
IMPORT DsReplicaAddA, 28
IMPORT DsReplicaAddW, 28
IMPORT DsReplicaConsistencyCheck, 12
IMPORT DsReplicaDelA, 16
IMPORT DsReplicaDelW, 16
IMPORT DsReplicaFreeInfo, 8
IMPORT DsReplicaGetInfo2W, 36
IMPORT DsReplicaGetInfoW, 20
IMPORT DsReplicaModifyA, 36
IMPORT DsReplicaModifyW, 36
IMPORT DsReplicaSyncA, 16
IMPORT DsReplicaSyncAllA, 24
IMPORT DsReplicaSyncAllW, 24
IMPORT DsReplicaSyncW, 16
IMPORT DsReplicaUpdateRefsA, 20
IMPORT DsReplicaUpdateRefsW, 20
IMPORT DsReplicaVerifyObjectsA, 16
IMPORT DsReplicaVerifyObjectsW, 16
IMPORT DsServerRegisterSpnA, 12
IMPORT DsServerRegisterSpnW, 12
IMPORT DsUnBindA, 4
IMPORT DsUnBindW, 4
IMPORT DsUnquoteRdnValueA, 16
IMPORT DsUnquoteRdnValueW, 16
IMPORT DsWriteAccountSpnA, 20
IMPORT DsWriteAccountSpnW, 20
IMPORT DsaopBind, 20
IMPORT DsaopBindWithCred, 24
IMPORT DsaopBindWithSpn, 28
IMPORT DsaopExecuteScript, 24
IMPORT DsaopPrepareScript, 16
IMPORT DsaopUnBind, 4

%ifdef UNICODE

%define DsAddSidHistory DsAddSidHistoryW
%define DsBind DsBindW
%define DsBindToISTG DsBindToISTGW
%define DsBindWithCred DsBindWithCredW
%define DsBindWithSpn DsBindWithSpnW
%define DsBindWithSpnEx DsBindWithSpnExW
%define DsClientMakeSpnForTargetServer DsClientMakeSpnForTargetServerW
%define DsCrackNames DsCrackNamesW
%define DsCrackSpn2 DsCrackSpn2W
%define DsCrackSpn DsCrackSpnW
%define DsCrackUnquotedMangledRdn DsCrackUnquotedMangledRdnW
%define DsFreeDomainControllerInfo DsFreeDomainControllerInfoW
%define DsFreeNameResult DsFreeNameResultW
%define DsFreeSchemaGuidMap DsFreeSchemaGuidMapW
%define DsFreeSpnArray DsFreeSpnArrayW
%define DsGetDomainControllerInfo DsGetDomainControllerInfoW
%define DsGetSpn DsGetSpnW
%define DsInheritSecurityIdentity DsInheritSecurityIdentityW
%define DsIsMangledDn DsIsMangledDnW
%define DsIsMangledRdnValue DsIsMangledRdnValueW
%define DsListDomainsInSite DsListDomainsInSiteW
%define DsListInfoForServer DsListInfoForServerW
%define DsListRoles DsListRolesW
%define DsListServersForDomainInSite DsListServersForDomainInSiteW
%define DsListServersInSite DsListServersInSiteW
%define DsListSites DsListSitesW
%define DsMakePasswordCredentials DsMakePasswordCredentialsW
%define DsMakeSpn DsMakeSpnW
%define DsMapSchemaGuids DsMapSchemaGuidsW
%define DsQuerySitesByCost DsQuerySitesByCostW
%define DsQuoteRdnValue DsQuoteRdnValueW
%define DsRemoveDsDomain DsRemoveDsDomainW
%define DsRemoveDsServer DsRemoveDsServerW
%define DsReplicaAdd DsReplicaAddW
%define DsReplicaDel DsReplicaDelW
%define DsReplicaModify DsReplicaModifyW
%define DsReplicaSync DsReplicaSyncW
%define DsReplicaSyncAll DsReplicaSyncAllW
%define DsReplicaUpdateRefs DsReplicaUpdateRefsW
%define DsReplicaVerifyObjects DsReplicaVerifyObjectsW
%define DsServerRegisterSpn DsServerRegisterSpnW
%define DsUnBind DsUnBindW
%define DsUnquoteRdnValue DsUnquoteRdnValueW
%define DsWriteAccountSpn DsWriteAccountSpnW

%else  ;// ANSI

%endif  ;// UNICODE

%define DsAddSidHistory DsAddSidHistoryA
%define DsBind DsBindA
%define DsBindToISTG DsBindToISTGA
%define DsBindWithCred DsBindWithCredA
%define DsBindWithSpn DsBindWithSpnA
%define DsBindWithSpnEx DsBindWithSpnExA
%define DsClientMakeSpnForTargetServer DsClientMakeSpnForTargetServerA
%define DsCrackNames DsCrackNamesA
%define DsCrackSpn2 DsCrackSpn2A
%define DsCrackSpn DsCrackSpnA
%define DsCrackUnquotedMangledRdn DsCrackUnquotedMangledRdnA
%define DsFreeDomainControllerInfo DsFreeDomainControllerInfoA
%define DsFreeNameResult DsFreeNameResultA
%define DsFreeSchemaGuidMap DsFreeSchemaGuidMapA
%define DsFreeSpnArray DsFreeSpnArrayA
%define DsGetDomainControllerInfo DsGetDomainControllerInfoA
%define DsGetSpn DsGetSpnA
%define DsInheritSecurityIdentity DsInheritSecurityIdentityA
%define DsIsMangledDn DsIsMangledDnA
%define DsIsMangledRdnValue DsIsMangledRdnValueA
%define DsListDomainsInSite DsListDomainsInSiteA
%define DsListInfoForServer DsListInfoForServerA
%define DsListRoles DsListRolesA
%define DsListServersForDomainInSite DsListServersForDomainInSiteA
%define DsListServersInSite DsListServersInSiteA
%define DsListSites DsListSitesA
%define DsMakePasswordCredentials DsMakePasswordCredentialsA
%define DsMakeSpn DsMakeSpnA
%define DsMapSchemaGuids DsMapSchemaGuidsA
%define DsQuerySitesByCost DsQuerySitesByCostA
%define DsQuoteRdnValue DsQuoteRdnValueA
%define DsRemoveDsDomain DsRemoveDsDomainA
%define DsRemoveDsServer DsRemoveDsServerA
%define DsReplicaAdd DsReplicaAddA
%define DsReplicaDel DsReplicaDelA
%define DsReplicaModify DsReplicaModifyA
%define DsReplicaSync DsReplicaSyncA
%define DsReplicaSyncAll DsReplicaSyncAllA
%define DsReplicaUpdateRefs DsReplicaUpdateRefsA
%define DsReplicaVerifyObjects DsReplicaVerifyObjectsA
%define DsServerRegisterSpn DsServerRegisterSpnA
%define DsUnBind DsUnBindA
%define DsUnquoteRdnValue DsUnquoteRdnValueA
%define DsWriteAccountSpn DsWriteAccountSpnA

%endif  ;// __NASMX_NTDSAPI_INC__
